package w83a.w83aOperacionesPaso.w83aResultados;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import w83a.w83aBeans.W83aResultadosBean;
import w83a.w83aUtilidadesComunes.W83aClsConstantes;
//import w83b.w83bUtilidadesComunes.W83bClsTrazas;
import w83a.w83aUtilidadesComunes.W83aUtilidades;
import es.ejie.frmk.presentacion.operacion.paso.Q70ActionPasoOP;
import es.ejie.frmk.presentacion.sesiondatos.Q70ContextoEJIE;

// TODO: Auto-generated Javadoc
/**
 * The Class W83bTablaConveniosOP.java.
 *
 * @author Deusto Sistemas
 */
public class W83aProcesoDelegadosConvenioOPAction extends Q70ActionPasoOP{

	
	/* (non-Javadoc)
	 * @see es.ejie.frmk.presentacion.operacion.paso.Q70ActionPasoOP#processOP(es.ejie.frmk.presentacion.sesiondatos.Q70ContextoEJIE, org.apache.struts.action.ActionErrors, org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
	 */
	protected void processOP(Q70ContextoEJIE contexto, ActionErrors errores, ActionMapping mapping,
			ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		
		Map general=new HashMap();
		List lista;
		//String sector="";
        int codconvenio=-1;
        int codsindicato=-1;
        String descsindicato="";
        int numdelegados=0;
        //String descsector="";
        List sindicatos=new ArrayList();
        Map convenios=new TreeMap();
        boolean encontrado=false;
        int posicion=0;
        String descconvenio="";
        String deseconvenio="";
        int totalelectores=0;
        //List empresas = new ArrayList();
        //List centros = new ArrayList();
        List actas = new ArrayList();
        List actas2 = new ArrayList();
        String[] valores;
        int numvotos=0;
        int cod=0;
		
		//Map sectores=new HashMap();
		
		HashMap mapa = (HashMap)contexto.get("w83aMapResultadosBean");
		//W83aResultadosBean param = (W83aResultadosBean)contexto.get("w83aResultadosBean");
		lista = (ArrayList)mapa.get("lista");
		
		//08/03/2016 SE QUITA EL FUNCIONMIENTO SIN DETALLE CENTRO
		/*if (!"true".equals(param.getDetalleCentro())){
			List numempresasycentros = (ArrayList)mapa.get("numempresasycentros");
			
	        for(int i=0;i<lista.size();i++){
	        	//Recorremos los resultados
	        	W83aResultadosBean rb=(W83aResultadosBean)lista.get(i);
	        	
	        	//En caso de que no sea el primero
	        	if (i>0){
	        		/* 08/03/2016 SE DEJA DE AGRUPAR POR SECTOR
	        		if (!sector.equals(rb.getSector())){
	        			for (int j=0;j<sindicatos.size();j++){
	    					valores=((String)sindicatos.get(j)).split("\\|");
	    					if (Integer.parseInt(valores[2])==codsindicato){
	    						encontrado=true;
	    						numdelegados=numdelegados+Integer.parseInt(rb.getNumdelegados());
	    						posicion=j;
	    						break;
	    					}
	    				}
	    				if (!encontrado){
							sindicatos.add(rellenarCeros(String.valueOf(numdelegados))+"|"+descsindicato+"|"+codsindicato);
	    				}else{
	    					encontrado=false;
	    					sindicatos.set(posicion,rellenarCeros(String.valueOf(numdelegados))+"|"+descsindicato+"|"+codsindicato);
	    				}
	    				sindicatos.add(empresas.size()+"|"+centros.size()+"|"+totalelectores+"|"+numvotos);
	    				if (W83aClsConstantes.CONSTANTE_CASTELLANO.equals(rb.getIdioma())){
	    					convenios.put(W83aUtilidades.rellenarCaracter(String.valueOf(codconvenio), "0", 4, true)+"|"+descconvenio+"|"+deseconvenio, sindicatos);
	    				}else{
	    					convenios.put(W83aUtilidades.rellenarCaracter(String.valueOf(codconvenio), "0", 4, true)+"|"+deseconvenio+"|"+descconvenio, sindicatos);
	    				}
	    				sectores.put(sector+"|"+descsector, convenios);
	    				convenios=new HashMap();//NOPMD
	    				sindicatos=new ArrayList();//NOPMD
	    				numdelegados=0;
	    				numvotos=0;
	    				empresas=new ArrayList();//NOPMD
	            		centros=new ArrayList();//NOPMD
	            		actas=new ArrayList();//NOPMD
	            		actas2=new ArrayList();//NOPMD
	    			}else 
	    			
	    			if (codconvenio!=Integer.parseInt(rb.getCodconvenio())){
	            		sindicatos.add(rellenarCeros(String.valueOf(numdelegados))+"|"+descsindicato+"|"+codsindicato);
	            		sindicatos.add(empresas.size()+"|"+centros.size()+"|"+totalelectores+"|"+numvotos);
	            		numdelegados=0;
	            		numvotos=0;
	            		if (W83aClsConstantes.CONSTANTE_CASTELLANO.equals(rb.getIdioma())){
	    					convenios.put(W83aUtilidades.rellenarCaracter(String.valueOf(codconvenio), "0", 4, true)+"|"+descconvenio+"|"+deseconvenio, sindicatos);
	    				}else{
	    					convenios.put(W83aUtilidades.rellenarCaracter(String.valueOf(codconvenio), "0", 4, true)+"|"+deseconvenio+"|"+descconvenio, sindicatos);
	    				}
	            		//sectores.put(sector+"|"+descsector, convenios);
	            		sindicatos=new ArrayList();//NOPMD
	            		empresas=new ArrayList();//NOPMD
	            		centros=new ArrayList();//NOPMD
	            		actas=new ArrayList();//NOPMD
	            		actas2=new ArrayList();//NOPMD
	      
	            	}else if (codconvenio==Integer.parseInt(rb.getCodconvenio())){
	            		if (rb.getCodsindicato()!=null){
	                		cod=Integer.parseInt(rb.getCodsindicato());
	                	}
	                	else{
	                		cod=-1;
	                	}
	            		if (codsindicato!=cod){
	            			sindicatos.add(rellenarCeros(String.valueOf(numdelegados))+"|"+descsindicato+"|"+codsindicato);
	            			numdelegados=0;
	            			if (W83aClsConstantes.CONSTANTE_CASTELLANO.equals(rb.getIdioma())){
	        					convenios.put(W83aUtilidades.rellenarCaracter(String.valueOf(codconvenio), "0", 4, true)+"|"+descconvenio+"|"+deseconvenio, sindicatos);
	        				}
	        				else{
	        					convenios.put(W83aUtilidades.rellenarCaracter(String.valueOf(codconvenio), "0", 4, true)+"|"+deseconvenio+"|"+descconvenio, sindicatos);
	        				}
	            			//sectores.put(sector+"|"+descsector, convenios);
	            		}
	            	}
	        	}
	        	
	        	numdelegados=numdelegados+Integer.parseInt(rb.getNumdelegados());//Sumamos numero de delegados
	        	centros=W83aUtilidades.addUnique(centros, rb.getNcentro());//Añadimos centro a la lista de centros 
	        	empresas=W83aUtilidades.addUnique(empresas, rb.getCif());//Añadimos empresa a lista de empresas
	        	
	        	//Si no hay votos se pone 0
	        	if (rb.getTotalvotos()==null){
	        		rb.setTotalvotos("0");
	        	}
	        	//Añadimos acta a la lista de actas por electores
	        	actas=W83aUtilidades.addUnique(actas, rb.getNacta()+"|"+rb.getTerritorio()+"|"+rb.getAnoacta()+"|"+rb.getVer()+"|"+rb.getTotalelectores());
	        	
	        	//Añadimos acta a la lista de actas por votos
	        	actas2=W83aUtilidades.addUnique(actas2, rb.getNacta()+"|"+rb.getTerritorio()+"|"+rb.getAnoacta()+"|"+rb.getVer()+"|"+rb.getTotalvotos());
	        	totalelectores=0;
	        	numvotos=0;
	        	
	        	for (int e=0;e<actas.size();e++){
	        		valores=((String)actas.get(e)).split("\\|");
	        		totalelectores=totalelectores+Integer.parseInt(valores[4]);
	        	}
	        	for (int e=0;e<actas2.size();e++){
	        		valores=((String)actas2.get(e)).split("\\|");
	        		numvotos=numvotos+Integer.parseInt(valores[4]);
	        	}
	        	
	        	//En caso de que sea el último
	        	if (i==lista.size()-1){
	        		// 08/03/2016 SE DEJA DE AGRUPAR POR SECTOR
	        		 if (!sector.equals(rb.getSector())){
	        			if (rb.getCodsindicato()!=null){
	                		cod=Integer.parseInt(rb.getCodsindicato());
	                	}
	                	else{
	                		cod=-1;
	                	}
	        			sindicatos.add(rellenarCeros(String.valueOf(numdelegados))+"|"+rb.getSiglas()+"|"+cod);
	        			sindicatos.add(empresas.size()+"|"+centros.size()+"|"+totalelectores+"|"+numvotos);
	        			if (W83aClsConstantes.CONSTANTE_CASTELLANO.equals(rb.getIdioma())){
	        				convenios.put(W83aUtilidades.rellenarCaracter(String.valueOf(rb.getCodconvenio()), "0", 4, true)+"|"+rb.getConvdesc()+"|"+rb.getConvdese(), sindicatos);
	    				}
	    				else{
	    					convenios.put(W83aUtilidades.rellenarCaracter(String.valueOf(rb.getCodconvenio()), "0", 4, true)+"|"+rb.getConvdese()+"|"+rb.getConvdesc(), sindicatos);
	    				}
	    				sectores.put(rb.getSector()+"|"+rb.getDescsector(), convenios);
	    			}else 
	        		
	    			if (codconvenio!=Integer.parseInt(rb.getCodconvenio())){
	        			//Cambio de convenio con el anteriro registro
	    				if (rb.getCodsindicato()!=null){
	                		cod=Integer.parseInt(rb.getCodsindicato());
	                	}else{
	                		cod=-1;
	                	}
	            		sindicatos.add(rellenarCeros(String.valueOf(numdelegados))+"|"+rb.getSiglas()+"|"+cod);
	            		sindicatos.add(empresas.size()+"|"+centros.size()+"|"+totalelectores+"|"+numvotos);
	            		if (W83aClsConstantes.CONSTANTE_CASTELLANO.equals(rb.getIdioma())){
	        				convenios.put(W83aUtilidades.rellenarCaracter(String.valueOf(rb.getCodconvenio()), "0", 4, true)+"|"+rb.getConvdesc()+"|"+rb.getConvdese(), sindicatos);
	    				}else{
	    					convenios.put(W83aUtilidades.rellenarCaracter(String.valueOf(rb.getCodconvenio()), "0", 4, true)+"|"+rb.getConvdese()+"|"+rb.getConvdesc(), sindicatos);
	    				}
	            		//sectores.put(sector+"|"+descsector, convenios);
	            	}else if (codconvenio==Integer.parseInt(rb.getCodconvenio())){
	            		//Mismo convenio que el anterior registro
	            		
	            		if (rb.getCodsindicato()!=null){
	                		cod=Integer.parseInt(rb.getCodsindicato());
	                	}else{
	                		cod=-1;
	                	}
	            		sindicatos.add(rellenarCeros(String.valueOf(numdelegados))+"|"+rb.getSiglas()+"|"+cod);
	            		sindicatos.add(empresas.size()+"|"+centros.size()+"|"+totalelectores+"|"+numvotos);
	            		if (W83aClsConstantes.CONSTANTE_CASTELLANO.equals(rb.getIdioma())){
	    					convenios.put(W83aUtilidades.rellenarCaracter(String.valueOf(codconvenio), "0", 4, true)+"|"+descconvenio+"|"+deseconvenio, sindicatos);
	    				}else{
	    					convenios.put(W83aUtilidades.rellenarCaracter(String.valueOf(codconvenio), "0", 4, true)+"|"+deseconvenio+"|"+descconvenio, sindicatos);
	    				}
	                	//sectores.put(sector+"|"+descsector, convenios);
	            	}
	        	}else{
	        		codconvenio=Integer.parseInt(rb.getCodconvenio());
	            	descconvenio=rb.getConvdesc();
	            	deseconvenio=rb.getConvdese();
	            	if (rb.getCodsindicato()!=null){
	            		codsindicato=Integer.parseInt(rb.getCodsindicato());
	            	}else{
	            		codsindicato=-1;
	            	}
	            	descsindicato=rb.getSiglas();
	            	//sector=rb.getSector();
	            	//descsector=rb.getDescsector();
	        	}
	        	
	        	if(i%5000==0){
		    		Runtime garbage = Runtime.getRuntime();
		    	    System.runFinalization();
		    	    System.gc();  	   
		    	    garbage.gc();
	        	}
	        	
	        }
			general.put("numempresasycentros", numempresasycentros);
			general.put("convenios", convenios);
			
			contexto.set("w83aMapResultadosBean",general);
			*/
			//*****************FIN SIN DETALLE CENTRO**************** 
			
		//}else{
		
			//INICIO DETALLE CENTRO
			
			int ncentro=-1;
        	String razon="";
        	Map mapactas=new HashMap();
        	int nacta=0;
        	String territ="";
        	int anoacta=0;
        	int ver=0;
        	String nactacompleta="";  
			
			for(int i=0;i<lista.size();i++){
            	W83aResultadosBean rb=(W83aResultadosBean)lista.get(i);

            	if (i>0){
            		if (codconvenio!=Integer.parseInt(rb.getCodconvenio())){
            			if (W83aClsConstantes.CONSTANTE_CASTELLANO.equals(rb.getIdioma())){
            				mapactas=(Map)convenios.get(W83aUtilidades.rellenarCaracter(String.valueOf(codconvenio), "0", 4, true)+"|"+descconvenio+"|"+deseconvenio);
        				}
        				else{
        					mapactas=(Map)convenios.get(W83aUtilidades.rellenarCaracter(String.valueOf(codconvenio), "0", 4, true)+"|"+deseconvenio+"|"+descconvenio);
        				}
            			if (mapactas!=null){
            				if (mapactas.get(nactacompleta+"|"+razon+"|"+ncentro)!=null){
        							sindicatos=(ArrayList)mapactas.get(nactacompleta+"|"+razon+"|"+ncentro);
        							for (int j=0;j<sindicatos.size();j++){
        	        					valores=((String)sindicatos.get(j)).split("\\|");
        	        					if (Integer.parseInt(valores[2])==codsindicato){
        	        						encontrado=true;
        	        						posicion=j;
        	        						break;
        	        					}
        	        				}
            				}
            			}else{
            				mapactas=new HashMap();//NOPMD
            			}
        				if (!encontrado){
    						sindicatos.add(rellenarCeros(String.valueOf(numdelegados))+"|"+descsindicato+"|"+codsindicato);
        				}else{
        					encontrado=false;
        					sindicatos.set(posicion,rellenarCeros(String.valueOf(numdelegados))+"|"+descsindicato+"|"+codsindicato);
        				}
        				sindicatos.add(totalelectores+"|"+numvotos);       				
        				mapactas.put(nactacompleta+"|"+razon+"|"+ncentro,sindicatos);
        				if (W83aClsConstantes.CONSTANTE_CASTELLANO.equals(rb.getIdioma())){
        					convenios.put(W83aUtilidades.rellenarCaracter(String.valueOf(codconvenio), "0", 4, true)+"|"+descconvenio+"|"+deseconvenio, mapactas);
        				}else{
        					convenios.put(W83aUtilidades.rellenarCaracter(String.valueOf(codconvenio), "0", 4, true)+"|"+deseconvenio+"|"+descconvenio, mapactas);
        				}
        				mapactas=new HashMap();//NOPMD
        				sindicatos=new ArrayList();//NOPMD
        				numdelegados=0;
        				numvotos = 0;
                		actas=new ArrayList();//NOPMD
                		actas2=new ArrayList();//NOPMD
        			}else{
            			if (W83aClsConstantes.CONSTANTE_CASTELLANO.equals(rb.getIdioma())){
            				mapactas=(Map)convenios.get(W83aUtilidades.rellenarCaracter(String.valueOf(codconvenio), "0", 4, true)+"|"+descconvenio+"|"+deseconvenio);
        				}else{
        					mapactas=(Map)convenios.get(W83aUtilidades.rellenarCaracter(String.valueOf(codconvenio), "0", 4, true)+"|"+deseconvenio+"|"+descconvenio);
        				}
            			if (mapactas!=null){
            					if (mapactas.get(nactacompleta+"|"+razon+"|"+ncentro)!=null){
            						sindicatos=(ArrayList)mapactas.get(nactacompleta+"|"+razon+"|"+ncentro);
                					for (int j=0;j<sindicatos.size();j++){
                	        			valores=((String)sindicatos.get(j)).split("\\|");
                	        			if (Integer.parseInt(valores[2])==codsindicato){
                	        				encontrado=true;
                	        				posicion=j;
                	        				break;
                	        			}
                	        		}
            					}
            			}
            			else{
            				mapactas=new HashMap();//NOPMD
            			}
            			if (!encontrado){
    						sindicatos.add(rellenarCeros(String.valueOf(numdelegados))+"|"+descsindicato+"|"+codsindicato);
        				}else{
        					encontrado=false;
        					sindicatos.set(posicion,rellenarCeros(String.valueOf(numdelegados))+"|"+descsindicato+"|"+codsindicato);
        				}
            			if (nacta!=Integer.parseInt(rb.getNacta())||!territ.equals(rb.getTerritorio())||anoacta!=Integer.parseInt(rb.getAnoacta())||ver!=Integer.parseInt(rb.getVer())){
                			sindicatos.add(totalelectores+"|"+numvotos);
                			numvotos = 0;
                		}
            			mapactas.put(nactacompleta+"|"+razon+"|"+ncentro, sindicatos);
                		if (W83aClsConstantes.CONSTANTE_CASTELLANO.equals(rb.getIdioma())){
            				convenios.put(W83aUtilidades.rellenarCaracter(String.valueOf(codconvenio), "0", 4, true)+"|"+descconvenio+"|"+deseconvenio, mapactas);
            			}else{
            				convenios.put(W83aUtilidades.rellenarCaracter(String.valueOf(codconvenio), "0", 4, true)+"|"+deseconvenio+"|"+descconvenio, mapactas);
            			}
                		if (rb.getCodsindicato()!=null){
                    		cod=Integer.parseInt(rb.getCodsindicato());
                    	}else{
                    		cod=-1;
                    	}
                		if ((nacta!=Integer.parseInt(rb.getNacta())||!territ.equals(rb.getTerritorio())||anoacta!=Integer.parseInt(rb.getAnoacta())||ver!=Integer.parseInt(rb.getVer()))
                				|| (nacta==Integer.parseInt(rb.getNacta())&&territ.equals(rb.getTerritorio())&&anoacta==Integer.parseInt(rb.getAnoacta())&&ver==Integer.parseInt(rb.getVer())&&codsindicato!=cod)){
                			sindicatos=new ArrayList();//NOPMD
            				numdelegados=0;
            					if (nacta!=Integer.parseInt(rb.getNacta())||!territ.equals(rb.getTerritorio())||anoacta!=Integer.parseInt(rb.getAnoacta())||ver!=Integer.parseInt(rb.getVer())){
            						actas=new ArrayList();//NOPMD
            						actas2=new ArrayList();//NOPMD
            					}
                		}
                	}
                }
            	if (rb.getNumdelegados()!=null){
            		numdelegados=numdelegados+Integer.parseInt(rb.getNumdelegados());
            	}           	
            	if (rb.getTotalvotos()==null){
            		rb.setTotalvotos("0");
            	}
            	actas=W83aUtilidades.addUnique(actas, rb.getNacta()+"|"+rb.getTerritorio()+"|"+rb.getAnoacta()+"|"+rb.getVer()+"|"+rb.getTotalelectores());
            	actas2=W83aUtilidades.addUnique(actas2, rb.getNacta()+"|"+rb.getTerritorio()+"|"+rb.getAnoacta()+"|"+rb.getVer()+"|"+rb.getTotalvotos());
            	totalelectores=0;
            	numvotos=0;
//            	numvotos=numvotos+Integer.parseInt(rb.getTotalvotos());
            	List actasTemp = new ArrayList();//NOPMD
            	for (int e=0;e<actas.size();e++){
            		if(!actasTemp.contains(rb.getNacta()+"|"+rb.getTerritorio()+"|"+rb.getAnoacta()+"|"+rb.getVer())){
	            		valores=((String)actas.get(e)).split("\\|");
	            		totalelectores=totalelectores+Integer.parseInt(valores[4]);
	            		actasTemp.add(rb.getNacta()+"|"+rb.getTerritorio()+"|"+rb.getAnoacta()+"|"+rb.getVer());
            		}
            	}
//            	actasTemp = new ArrayList();//NOPMD
            	for (int e=0;e<actas2.size();e++){
//            		if(!actasTemp.contains(rb.getNacta()+"|"+rb.getTerritorio()+"|"+rb.getAnoacta()+"|"+rb.getVer())){
            			valores=((String)actas2.get(e)).split("\\|");
            			numvotos=numvotos+Integer.parseInt(valores[4]);
//            			actasTemp.add(rb.getNacta()+"|"+rb.getTerritorio()+"|"+rb.getAnoacta()+"|"+rb.getVer());
//            		}
            	}
            	if (i==lista.size()-1){
            		if (codconvenio!=Integer.parseInt(rb.getCodconvenio())){
            			sindicatos=new ArrayList();//NOPMD
            			if (rb.getCodsindicato()!=null){
                    		cod=Integer.parseInt(rb.getCodsindicato());
                    	}else{
                    		cod=-1;
                    	}
            			sindicatos.add(rellenarCeros(String.valueOf(numdelegados))+"|"+rb.getSiglas()+"|"+cod);
        				sindicatos.add(totalelectores+"|"+numvotos);
        				mapactas=new HashMap();//NOPMD
        				mapactas.put(rb.getNactacompleta()+"|"+rb.getRazon()+"|"+rb.getSector(),sindicatos);
        				//mapcentros=new HashMap();//NOPMD
        				//mapcentros.put(rb.getRazon()+"|"+rb.getSector(), mapactas);
        				if (W83aClsConstantes.CONSTANTE_CASTELLANO.equals(rb.getIdioma())){
        					convenios.put(W83aUtilidades.rellenarCaracter(String.valueOf(rb.getCodconvenio()), "0", 4, true)+"|"+rb.getConvdesc()+"|"+rb.getConvdese(), mapactas);
        				}else{
        					convenios.put(W83aUtilidades.rellenarCaracter(String.valueOf(rb.getCodconvenio()), "0", 4, true)+"|"+rb.getConvdese()+"|"+rb.getConvdesc(), mapactas);
        				}
        			}
            		else{
            			if (W83aClsConstantes.CONSTANTE_CASTELLANO.equals(rb.getIdioma())){
            				mapactas=(Map)convenios.get(W83aUtilidades.rellenarCaracter(String.valueOf(rb.getCodconvenio()), "0", 4, true)+"|"+rb.getConvdesc()+"|"+rb.getConvdese());
        				}else{
        					mapactas=(Map)convenios.get(W83aUtilidades.rellenarCaracter(String.valueOf(rb.getCodconvenio()), "0", 4, true)+"|"+rb.getConvdese()+"|"+rb.getConvdesc());
        				}
            			if (mapactas!=null){
            				  if (mapactas.get(rb.getNactacompleta()+"|"+rb.getRazon()+"|"+String.valueOf(rb.getNcentro()))!=null){
                					sindicatos=(ArrayList)mapactas.get(rb.getNactacompleta()+"|"+rb.getRazon()+"|"+String.valueOf(rb.getNcentro()));
                					for (int j=0;j<sindicatos.size();j++){
                	        			valores=((String)sindicatos.get(j)).split("\\|");
                	        			if (rb.getCodsindicato()!=null){
                                    		cod=Integer.parseInt(rb.getCodsindicato());
                                    	}
                                    	else{
                                    		cod=-1;
                                    	}
                	        			if (Integer.parseInt(valores[0])==cod){
                	        				encontrado=true;
                	        				posicion=j;
                	        				break;
                	        			}
                	        		}
                				}
            			}else{
            				mapactas=new HashMap();//NOPMD
            			}
            			if (!encontrado){
            				if (rb.getCodsindicato()!=null){
                        		cod=Integer.parseInt(rb.getCodsindicato());
                        	}else{
                        		cod=-1;
                        	}
    						sindicatos.add(rellenarCeros(String.valueOf(numdelegados))+"|"+rb.getSiglas()+"|"+cod);
        				}else{
        					encontrado=false;
        					sindicatos.set(posicion,rellenarCeros(String.valueOf(numdelegados))+"|"+descsindicato+"|"+codsindicato);
        				}
            			sindicatos.add(totalelectores+"|"+numvotos);           			
        				mapactas.put(rb.getNactacompleta()+"|"+rb.getRazon()+"|"+String.valueOf(rb.getNcentro()), sindicatos);
                		if (W83aClsConstantes.CONSTANTE_CASTELLANO.equals(rb.getIdioma())){
        					convenios.put(W83aUtilidades.rellenarCaracter(String.valueOf(rb.getCodconvenio()), "0", 4, true)+"|"+rb.getConvdesc()+"|"+rb.getConvdese(), mapactas);
        				}else{
        					convenios.put(W83aUtilidades.rellenarCaracter(String.valueOf(rb.getCodconvenio()), "0", 4, true)+"|"+rb.getConvdese()+"|"+rb.getConvdesc(), mapactas);
        				}
                	}
            	}else{
            		codconvenio=Integer.parseInt(rb.getCodconvenio());
                	descconvenio=rb.getConvdesc();
                	deseconvenio=rb.getConvdese();
                	if (rb.getCodsindicato()!=null){
                		codsindicato=Integer.parseInt(rb.getCodsindicato());
                	}else{
                		codsindicato=-1;
                	}
                	
                	descsindicato=rb.getSiglas();
                	ncentro=Integer.parseInt(rb.getNcentro());
                	razon=rb.getRazon();
                	nacta=Integer.parseInt(rb.getNacta());
                	territ=rb.getTerritorio();
                	anoacta=Integer.parseInt(rb.getAnoacta());
                	ver=Integer.parseInt(rb.getVer());
                	nactacompleta=rb.getNactacompleta();
            	}
	        	if(i%5000==0){
		    		Runtime garbage = Runtime.getRuntime();
		    	    System.runFinalization();
		    	    System.gc();  	   
		    	    garbage.gc();
	        	}
	        	
            	
			}
    		
            general.put("numempresasycentros", new HashMap());
    		general.put("convenios", convenios);
    		
    		contexto.set("w83aMapResultadosBean",general);
			
		//}
		
	}

	/* (non-Javadoc)
	 * @see es.ejie.frmk.presentacion.operacion.paso.Q70ActionPasoOP#processForward(es.ejie.frmk.presentacion.sesiondatos.Q70ContextoEJIE, org.apache.struts.action.ActionErrors, org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
	 */
	protected ActionForward processForward(Q70ContextoEJIE contexto, ActionErrors errors, ActionMapping mapping, 
			ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
			
		return mapping.findForward("ok");
	}
	
	
	public static String rellenarCeros(String pNumero) {
		StringBuffer num = new StringBuffer();//NOPMD
		
		if (pNumero.length()==1){
			num.append("00000").append(pNumero);
		}else if (pNumero.length()==2){
			num.append("0000").append(pNumero);
		}else if (pNumero.length()==3){
			num.append("000").append(pNumero);
		}else if (pNumero.length()==4){
			num.append("00").append(pNumero);
		}else if (pNumero.length()==5){
			num.append("0").append(pNumero);
		}else{
			num.append(pNumero);
		}
		return num.toString();
	}

}
